package edu.ucsur.tp.veterinaria.forms;

import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;

import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

import edu.ucsur.tp.beans.Usuario;
import edu.ucsur.tp.negocio.mantenimientos.MantenimientoUsuarioNegocio;

public class FormRegistroUsuario extends FormRegistroPlantilla {
  
  private MantenimientoUsuarioNegocio usuarioNegocio = new MantenimientoUsuarioNegocio();
  
  private JTextField txtCodigoUsuario;
  private JTextField txtNombres;
  private JTextField txtApellidos;
  private JTextField txtFechaNacimiento;
  private JTextField txtCorreo;

  /**
   * Launch the application.
   */
  public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
      public void run() {
        try {
          FormRegistroUsuario frame = new FormRegistroUsuario();
          frame.setVisible(true);
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
    });
  }

  /**
   * Create the frame.
   */
  public FormRegistroUsuario() {
    btnGuardar.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        //-- Llenando una instancia (objeto) de Usuario - JavaBean
        Usuario usuario = new Usuario();
        usuario.setCodigoUsuario(txtCodigoUsuario.getText());
        usuario.setNombres(txtNombres.getText());
        usuario.setApellidos(txtApellidos.getText());
        usuario.setFechaNacimiento(txtFechaNacimiento.getText());
        usuario.setCorreo1(txtCorreo.getText());
        //-- Invocando al negocio (insertar) y ver si tiene errores
        List<String> errores = usuarioNegocio.insertarUsuario(usuario);
        //-- Si tiene errores, pintarlos en Java Desktop
        if (errores != null) {
          String mensajes = "Se han detectado las siguientes validaciones:\r\n\r\n";
          for (String error : errores) {
            mensajes += "- " + error + "\r\n";
          }
          JOptionPane.showMessageDialog(FormRegistroUsuario.this, mensajes);
        }
        if (errores == null) {
          JOptionPane.showMessageDialog(FormRegistroUsuario.this, "Usuario guardado exitosamente");
          try {
            FormRegistroUsuario.this.setClosed(true);
          } catch (Exception ex1) {
            ex1.printStackTrace();
          }
        }
      }
    });
    setClosable(true);
    setTitle("Registro de Usuario");
    setBounds(100, 100, 442, 215);
    pnlControles.setLayout(null);
    
    JLabel lblUsuario = new JLabel("Usuario:");
    lblUsuario.setBounds(10, 8, 46, 14);
    pnlControles.add(lblUsuario);
    
    txtCodigoUsuario = new JTextField();
    txtCodigoUsuario.setBounds(150, 8, 155, 20);
    pnlControles.add(txtCodigoUsuario);
    txtCodigoUsuario.setColumns(10);
    
    JLabel lblNombres = new JLabel("Nombres:");
    lblNombres.setBounds(10, 39, 46, 14);
    pnlControles.add(lblNombres);
    
    txtNombres = new JTextField();
    txtNombres.setBounds(150, 39, 192, 20);
    pnlControles.add(txtNombres);
    txtNombres.setColumns(10);
    
    JLabel lblApellidoPaterno = new JLabel("Apellidos:");
    lblApellidoPaterno.setBounds(10, 70, 91, 14);
    pnlControles.add(lblApellidoPaterno);
    
    txtApellidos = new JTextField();
    txtApellidos.setBounds(150, 70, 192, 20);
    pnlControles.add(txtApellidos);
    txtApellidos.setColumns(10);
    
    JLabel lblApellidoMaterno = new JLabel("Fecha de Nacimiento:");
    lblApellidoMaterno.setBounds(10, 101, 120, 14);
    pnlControles.add(lblApellidoMaterno);
    
    txtFechaNacimiento = new JTextField();
    txtFechaNacimiento.setColumns(10);
    txtFechaNacimiento.setBounds(150, 101, 101, 20);
    pnlControles.add(txtFechaNacimiento);
    
    JLabel lblCorreo = new JLabel("Correo:");
    lblCorreo.setBounds(10, 129, 91, 14);
    pnlControles.add(lblCorreo);
    
    txtCorreo = new JTextField();
    txtCorreo.setColumns(10);
    txtCorreo.setBounds(150, 129, 276, 20);
    pnlControles.add(txtCorreo);

  }

}
